# 导包
import logging.handlers


class GetLogger:
    """
        通用日志
    """
    logger = None

    @classmethod
    def get_logger(cls):
        if cls.logger is None:
            # 获取 日志器
            cls.logger = logging.getLogger()
            # 设置 日志器 级别
            cls.logger.setLevel(logging.INFO)

            # 获取处理器 控制台
            sh = logging.StreamHandler()
            # 获取处理器 文件-以时间分割
            fh = logging.handlers.TimedRotatingFileHandler(filename="../log/202410281338_init.log",
                                                           when="midnight", # 一天一次
                                                           interval=1,
                                                           backupCount=30,
                                                           encoding="utf-8")

            # 设置格式器
            fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
            fm = logging.Formatter(fmt)
            # 将格式器添加到 处理器 控制台
            sh.setFormatter(fm)
            # 将格式器添加到 处理器 文件
            fh.setFormatter(fm)
            # 将处理器添加到 日志器
            cls.logger.addHandler(sh)
            cls.logger.addHandler(fh)

        return cls.logger
